import {createApi, fetchBaseQuery} from "@reduxjs/toolkit/dist/query/react"

/**
 * 创建 RTKQ 中的 API对象
 * @param {object} option 配置对象
 *    object{
 *      reducerPath: 'api', api标识
 *      baseQuery: fetchBaseQuery({ 查询的基础信息
 *        baseUrl: '', 发送请求地址
 *        endpoints(){ return {} }, 指定 api 中各种功能
 *      }),
 *    }
*/
const stuApi = createApi({
  reducerPath: 'studentApi',
  baseQuery: fetchBaseQuery({
    baseUrl: 'http://localhost:1337/api/',
  }),
  endpoints(build){
    return {
      getStudent: build.query({ // build.query() 查询
        query(){ // 指定请求子路径
          return 'students'
        }
      }),
      // updataStudent: build.mutation() // build.mutation() 对数据操作
    }
  },
  keepUnusedDataFor: 0, // 设置数据缓存时间（没有使用的数据），默认60s
})


/**
 * API 对象创建完之后会根据各种方法生成钩子函数
 * 发送请求
 * 钩子函数命名规则 ==> useStudents ==> useGetStudentQuery
*/
export const {useGetStudentsQuery} = stuApi
export default stuApi